using System;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using Microsoft.SharePoint;
using Kaskelot.SP.Core;
using Kaskelot.SP.Services;
using System.Diagnostics;

namespace Kaskelot.SP.UI.Features.AnalysPages
{
	/// <summary>
	/// This class handles events raised during feature activation, deactivation, installation, uninstallation, and upgrade.
	/// </summary>
	/// <remarks>
	/// The GUID attached to this class may be used during packaging and should not be modified.
	/// </remarks>

	[Guid("a3ced439-84b2-4d00-a5c3-6736bdadb0aa")]
	public class AnalysPagesEventReceiver : SPFeatureReceiver
	{
		// Uncomment the method below to handle the event raised after a feature has been activated.

		public override void FeatureActivated(SPFeatureReceiverProperties properties)
		{
			Logger.LogVerbose(this, LayerNames.UI, "AnalysPagesEventReceiver.FeatureActivated", "Entered");

			SPWeb web = properties.Feature.Parent as SPWeb;

			using (PageService svc = new PageService(web))
			{
				// Ensure page
				svc.CreatePage(Constants.Analys.Pages.StartPage, "Analys", Constants.PageLayouts.StartPage);
				svc.DeleteAllWebParts(Constants.Analys.Pages.StartPage);

				WebParts.Analys.Analys wp1 = new WebParts.Analys.Analys();
				svc.AddWebPart(Constants.Analys.Pages.StartPage, wp1, Constants.WebPartZones.Top, 0);
			}

			Logger.LogVerbose(this, LayerNames.UI, "AnalysPagesEventReceiver.FeatureActivated", "Exiting");
		}


		// Uncomment the method below to handle the event raised before a feature is deactivated.

		//public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
		//{
		//}


		// Uncomment the method below to handle the event raised after a feature has been installed.

		//public override void FeatureInstalled(SPFeatureReceiverProperties properties)
		//{
		//}


		// Uncomment the method below to handle the event raised before a feature is uninstalled.

		//public override void FeatureUninstalling(SPFeatureReceiverProperties properties)
		//{
		//}

		// Uncomment the method below to handle the event raised when a feature is upgrading.

		//public override void FeatureUpgrading(SPFeatureReceiverProperties properties, string upgradeActionName, System.Collections.Generic.IDictionary<string, string> parameters)
		//{
		//}
	}
}
